Prolog Facts
介绍
在 Prolog 中,最简单的语句是 fact。Fact 表示两个对象之间持有的关系。举例:
father(abraham, isaac)
其中:上述语句表示,Abraham 是 Isaac 的父亲。
关系的另一种叫法是 predicate。个体的名称被称为 atoms。
再举例:
plus(2, 3, 5)
表示的关系是 2+3=5。 plus 关系,对加法表中的 facts 都是满足的。这个表是无穷无尽的,比如:
plus(0, 0, 0)
plus(0, 1, 1)
plus(0, 2, 2)
……
如果这张表足够大,它是一个合法的逻辑程序,并且定义了 plus 关系。
注:但是这个也是理论上的,实际上这张表太大,就为了实现一个加法……
注2:predicates 和 atoms 都要以小写字母开头。
有限的 facts 集合构成了程序。这是最简单的逻辑程序。
示例:家谱
male(terach).
male(abraham).
male(nachor).
male(haran).
male(issac).
male(lot).
female(sarah).
female(milcah).
female(yiscah).
father(terach, abraham).
father(terach, nachor).
father(terach, haran).
father(abraham, issac).
father(haran, lot).
father(haran, milcah).
father(haran, yiscah).
mother(sarah, issac).
其中的 predicates 是 father、mother、male、female。
Universal Facts
普遍事实。假设圣经人物都喜欢石榴:
likes(abraham, pomegranates).
likes(sarah, pomegranates).
.
.
.
fact likes(X, pomegranates) 可以说是满足所有的(基于假设)。
通过这种方式,variable 概括了大量 facts。
再举例:times(0, X, 0) 概括了一条规律,即任何数字乘 0 都为 0。
基于 fact likes(X, pomegranates) ,可以推导出 likes(abraham, pomegranates)。
plus(0, X, X) 表示 0 加任何数字都是 0。